package ch07;

import java.util.ArrayList;
import java.util.List;

public class NewsMain {
    public static void main(String[] args) {
        News news1 = new News("来华大佬，藏着秘密","商业人物","2023-06-15");
        News news2 = new News("又见“芹菜罚单”，国务院督查组白通报了？","南方都市报","2023-06-14");
        News news3 = new News("没落的湖北第二城荆州：被后继者赶超，多位专家直言“省里很着急”","城市进化论","2023-06-13");
        News news4 = news2;// 一个数据 多个引用
        News news5 = new News("没落的湖北第二城荆州：被后继者赶超，多位专家直言“省里很着急”","城市进化论","2023-06-13");// 两个数据 分别引用
        // 使用集合存储  ArrayList  有序 有重复   使用泛型 就行格式规范
        ArrayList<News> list = new ArrayList<News>();
        System.out.println("依次添加");
        list.add(news1);
        list.add(news2);
        list.add(news3);
        list.add(news4);
        list.add(news5);
//        list.add(10,news5); // 可能出现下标越界  IndexOutOfBoundsException: Index: 10, Size: 4
//        list.add("news3"); // 非news类型不能添加   确保了  数据的入口

        System.out.println(list.size());
        int size = list.size();// 将动态的size() 记录为 固定的变量size 防止 添加 | 删除 引起的变化
        for (int i=0;i<size;i++){
//            News news = list.get(i);//  确保了  数据的出口  不需要类型转换  避免了 类型转化异常  ClassCastException
//            System.out.println(news.getTitle());
            System.out.println(list.get(i));
        }

//        System.out.println("循环删除");
//        for (int i = 0; i < list.size(); i++) {
//            list.remove(0); // 始终删除头部第一个
//        }
//        for(int i=list.size()-1;i>=0;i--){
//            list.remove(i); // 始终删除尾部最后一个
//        }

//        list.clear();// 直接清空  全部删除

        System.out.println("单个删除");
//        list.remove(0);// 只要下标不越界 即可
//        list.remove(news5);// 1.搜索匹配(匹配规则是 equals ) 2.删除匹配的第一个元素


//        list.remove(0);
//        list.remove(news1);
        list.remove(news5);
        System.out.println(list.size());
        for (int i=0;i<list.size();i++){
//            News news = list.get(i);//  确保了  数据的出口  不需要类型转换  避免了 类型转化异常  ClassCastException
//            System.out.println(news.getTitle());
            System.out.println(list.get(i));
        }
        System.out.println("匹配查找");
        int index = list.indexOf(news3);
        System.out.println("匹配下标: "+index);
        boolean flag = list.contains(news3);
        System.out.println("是否存在: "+flag);
    }
}
